﻿using System;
using System.Text;
using System.Drawing;
using System.Buffers;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;

public static partial class glDRIVE
{
    /*
    函数 gl.chol
    对称正定矩阵的Cholesky分解
    参数 a: a[n][n]存放对称正定矩阵A。返回时其下三角部分存放分解得到的下三角阵L，其余元素均为0。
    参数 n: 
    返回值 若等于0，则表示失败；若大于0，则表示正常。
    */

    public static string drive_chol()
    {
        int i, j;
        double[,] a = new double[4, 4]{
            {5.0,7.0,6.0,5.0},
            {7.0,10.0,8.0,7.0},
            {6.0,8.0,10.0,9.0},
            {5.0,7.0,9.0,10.0}
        };

        string rs = "";
        rs += gl.html_table("Mat A:", a);

        i = gl.chol(a, 4);
        if (i < 0) return "error:" + i;
        rs += gl.html_table("MAT L:", a);
        return rs;
    }
}
